SpiderMonkey 简介
视频锁定
{$ currentTime | date:'mm:ss' $}
{$ timeLeft | date:'mm:ss' $}
和其他的 JavaScript 引擎一样,SpiderMonkey 不直接提供像 DOM 这样的对象,而是提供解析,执行 JavaSccript 代码,垃圾回收等机制。SpidlerMonkey 是一个在 Mozilla 之 下的开源项目,要使用 SpiderMonkey,需要下载其源码,然后编译为静态/动态库使用。 要在自己的应用程序中使用 SpiderMonkey,首先需要了解以下三个核心概念:
运行时环境 运行时环境是所有 JavaScript 变量,对象,脚本以及代码的上下文所存在的空间。每一个上下文对象,以及所有的对象均存在于此。一般应用仅需要一个运行时即可。
上下文 上下文即脚本执行的环境,在 SpiderMonkey 中,上下文可以编译执行脚本,可以存取对象的属性,调用 JavaScript 的函数,转换类型,创建/维护对象等。几乎所有的 SpiderMonkey 函数都需要上下文作为其第一个参数(JSContext *)。 上下文与线程密不可分,一般来讲,单线程应用可以使用一个上下文来完成所有的操作,每一个上下文每次只能完成一个操作,所有在多线程应用中,同一时刻只能有一个线程来使用 上下文对象。一般而言,多线程应用中,每个线程对应一个上下文。
全局对象全局对象包含JavaScript代码所用到的所有类,函数,变量。在DOM操作中,我们使用的:
alter("something");
事实上使用的是全局变量 window 的一个属性 alter(这个属性正好是一个函数),事实上上边的语句在执行时会别解释为:
window.alter("something");
三者的关系如下图所示:
在线练习
{$ activeFileHint $}